package com.kj.tms.system.service.user.dao;

import com.kj.tms.common.bean.dao.BaseMapper;
import com.kj.tms.pri.system.user.dto.UserDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <p>项目名称：system<p>
 * <p>类名称：UserMapper<p>
 * <p>类描述：人员Mapper<p>
 * @author 创建人：yangruidong
 * @author 创建时间： 2017年10月18日 9:41
 * @author 修改人：yangruidong
 * @author 修改时间：2017年10月18日 9:41
 * @author 修改备注：
 * @version: 2017年10月18日
 */
@Repository
public interface UserMapper extends BaseMapper<UserDto> {

	/**
	 *
	 * @Title: listOrgByPage
	 * @Description: 查询机构人员列表分页
	 * @param userDto
	 * @return List<UserDto> 返回类型
	 * @throws Exception
	 */
	List<UserDto> listOrgByPage(UserDto userDto);
	/**
	 * 根据roleId 查询用户信息
	 * @param roleId
	 * @return
	 */
	List<UserDto> listUserByRole(@Param("roleId") String roleId);

	/**
	 *
	 * @Title: listWaitUser
	 * @Description: 查询等待分配的机构人员分页数据
	 * @param map
	 * @return List<UserDto> 返回类型
	 * @throws Exception
	 */
	List<UserDto> listWaitUser(Map map);

	/**
	 * @Title: 查询机构人员列表不分页 (条件查询)
	 * @Description
	 * @Method   listByConditionNoPage
	 * @param userDto
	 * @Return
	 * @Date: 2017年10月27日 15:56
	 * @Author:yangruidong
	 * @version: 2017年10月27日
	 */
	List<UserDto> listByConditionNoPage(UserDto userDto);

	/**
	 * @Title: 查询机构人员列表分页 (条件查询)
	 * @Description
	 * @Method   listByCondition
	 * @param map
	 * @Return
	 * @Date: 2017年10月27日 15:56
	 * @Author:yangruidong
	 * @version: 2017年10月27日
	 */
	List<UserDto> listByCondition(Map map);

	int getCounts(Map map);

	/**
	 * @Title:  getUserOrgCount
	 * @Description  查询机构人员列表数量
	 * @Method
	 * @param userDto
	 * @Return
	 * @Date: 2017年10月25日 10:28
	 * @Author:yangruidong
	 * @version: 2017年10月25日
	 */
	int getUserOrgCount(UserDto userDto);

	/**
	 * @Title:  getWaitUserCount
	 * @Description  查询等待分配的机构人员分页数据数量
	 * @Method
	 * @param map
	 * @Return
	 * @Date: 2017年10月25日 10:28
	 * @Author:yangruidong
	 * @version: 2017年10月25日
	 */
	int getWaitUserCount(Map map);

	/**
	 * 插入记录 excel 人员和机构和角色
	 *
	 * @param list
	 */
	void batchAddUserOrgRole(@Param("list") List<UserDto> list);

}
